bitkeeper revision 1.1452 (428b6062g_unu25_ly_M7YUuHKn8Wg)
authorcl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Wed, 18 May 2005 15:33:54 +0000 (15:33 +0000)
committercl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Wed, 18 May 2005 15:33:54 +0000 (15:33 +0000)
XendDomain.py:
  Bring back refresh() calls but only run the code cleanup parts
  of refresh when necessary.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
tools/python/xen/xend/XendDomain.py

index 3140584884ec6e81735f8f971e4bdb101731a3cf..2d049c31d430778acc72c5c0120138aaf3b95e48 100644 (file)
@@ -109,7 +109,7 @@ class XendDomain:
         """Event handler for virq.
         """
         print 'onVirq>', val
-        self.refresh()
+        self.refresh(cleanup=True)
 
     def rm_all(self):
         """Remove all domain info. Used after reboot.
@@ -154,7 +154,7 @@ class XendDomain:
                     self._delete_domain(domid)
             else:
                 self._delete_domain(domid)
-        self.refresh()
+        self.refresh(cleanup=True)
 
     def sync(self):
         """Sync domain db to disk.
@@ -274,10 +274,11 @@ class XendDomain:
             destroyed += 1
             self.final_domain_destroy(id)
 
-    def refresh(self):
+    def refresh(self, cleanup=False):
         """Refresh domain list from Xen.
         """
-        self.reap()
+        if cleanup:
+            self.reap()
         doms = self.xen_domains()
         # Add entries for any domains we don't know about.
         for (id, d) in doms.items():
@@ -294,7 +295,7 @@ class XendDomain:
                 do_domain_restarts = True
             else:
                 self._delete_domain(d.id)
-        if do_domain_restarts:
+        if cleanup and do_domain_restarts:
             self.scheduler.now(self.domain_restarts)
 
     def update_domain(self, id):
@@ -325,6 +326,7 @@ class XendDomain:
 
         @return: domain names
         """
+        self.refresh()
         return self.domain_by_name.keys()
 
     def domain_ls_ids(self):
@@ -332,6 +334,7 @@ class XendDomain:
 
         @return: domain names
         """
+        self.refresh()
         return self.domain_by_id.keys()
 
     def domains(self):
@@ -339,6 +342,7 @@ class XendDomain:
 
         @return: domain objects
         """
+        self.refresh()
         return self.domain_by_id.values()
     
     def domain_create(self, config):